/**
 * Copyright &copy; 2012-2017 <a href="https://vivo.com">vivo</a> All rights reserved.
 */
package com.vivo.employee.entity;

import com.thinkgem.jeesite.modules.sys.entity.Office;
import org.hibernate.validator.constraints.Length;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import javax.validation.constraints.NotNull;
import com.thinkgem.jeesite.common.utils.excel.annotation.ExcelField;

import com.thinkgem.jeesite.common.persistence.DataEntity;

/**
 * 应聘登记Entity
 * @author jyangye
 * @version 2018-01-06
 */
public class ViEmpRegistration extends DataEntity<ViEmpRegistration> {
	
	private static final long serialVersionUID = 1L;
	private String title;		// 标题
	private String jobName;		// 申请职位
	private Date tableDate;		// 填表日期
	private String daiyu;		// 期望待遇
	private Date indutyDate;		// 可到职日期
	private String isYingjie;		// 是应届毕业生
	private String name;		// 姓名
	private String sex;		// 性别
	private String telephone;		// 联系电话
	private String age;		// 年龄
	private String greLevel;		// 英文等级
	private String greScore;		// 英文成绩
	private String zzmm;		// 政治面貌
	private String minzu;		// 名族
	private String jiguan;		// 籍贯
	private String cultrue;		// 文化程度
	private String hukouXingzhi;		// 户口性质
	private String hukouPlace;		// 户口所在地
	private String juzhuPlace;		// 目前居住地
	private String emgName;		// 紧急联系人
	private String emgPhone;		// 联络电话
	private String emgGx;		// 关系
	private String techang;		// 个人特长
	private String opeator;		// 操作人
	private String isActive;		// 是否生效
	private Date beginTableDate;		// 开始 填表日期
	private Date endTableDate;		// 结束 填表日期

    private Office comp;
    private Office dept;
    private Office post;

    private String code; //身份证号

    private String errMsg; // 错误信息



    public ViEmpRegistration() {
		super();
	}

	public ViEmpRegistration(String id){
		super(id);
	}

	@Length(min=1, max=64, message="标题长度必须介于 1 和 64 之间")
	@ExcelField(title="*标题", align=2, sort=20)
	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

    public Office getComp() {
        return comp;
    }

    public void setComp(Office comp) {
        this.comp = comp;
    }

    @ExcelField(title="*申请部门", align=2, sort=25)
    public Office getDept() {
        return dept;
    }

    public void setDept(Office dept) {
        this.dept = dept;
    }

    @ExcelField(title="*申请职位", align=2, sort=30)
    public Office getPost() {
        return post;
    }

    public void setPost(Office post) {
        this.post = post;
    }

	public String getJobName() {
		return jobName;
	}

	public void setJobName(String jobName) {
		this.jobName = jobName;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd")
	@NotNull(message="填表日期不能为空")
	@ExcelField(title="*填表日期", align=2, sort=40)
	public Date getTableDate() {
		return tableDate;
	}

	public void setTableDate(Date tableDate) {
		this.tableDate = tableDate;
	}
	
	@Length(min=0, max=11, message="期望待遇长度必须介于 0 和 11 之间")
	@ExcelField(title="期望待遇", align=2, sort=50)
	public String getDaiyu() {
		return daiyu;
	}

	public void setDaiyu(String daiyu) {
		this.daiyu = daiyu;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd")
	@NotNull(message="可到职日期不能为空")
	@ExcelField(title="*可到职日期", align=2, sort=60)
	public Date getIndutyDate() {
		return indutyDate;
	}

	public void setIndutyDate(Date indutyDate) {
		this.indutyDate = indutyDate;
	}
	
	@Length(min=0, max=1, message="是应届毕业生长度必须介于 0 和 1 之间")
	@ExcelField(title="*是应届毕业生", align=2, sort=70, dictType = "yes_no")
	public String getIsYingjie() {
		return isYingjie;
	}

	public void setIsYingjie(String isYingjie) {
		this.isYingjie = isYingjie;
	}
	
	@Length(min=1, max=50, message="姓名长度必须介于 1 和 50 之间")
	@ExcelField(title="*姓名", align=2, sort=80)
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	@Length(min=1, max=1, message="性别长度必须介于 1 和 1 之间")
	@ExcelField(title="*性别", align=2, sort=90, dictType = "sex")
	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

    @Length(min=1, max=32, message="联系电话长度必须介于 1 和 32 之间")
    @ExcelField(title="*身份证号", align=2, sort=95, isText = true)
    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }
	
	@Length(min=1, max=32, message="联系电话长度必须介于 1 和 32 之间")
	@ExcelField(title="*联系电话", align=2, sort=100, isText = true)
	public String getTelephone() {
		return telephone;
	}

	public void setTelephone(String telephone) {
		this.telephone = telephone;
	}
	
	@Length(min=0, max=11, message="年龄长度必须介于 0 和 11 之间")
	@ExcelField(title="年龄", align=2, sort=110)
	public String getAge() {
		return age;
	}

	public void setAge(String age) {
		this.age = age;
	}
	
	@Length(min=0, max=32, message="英文等级长度必须介于 0 和 32 之间")
	@ExcelField(title="英文等级", align=2, sort=120)
	public String getGreLevel() {
		return greLevel;
	}

	public void setGreLevel(String greLevel) {
		this.greLevel = greLevel;
	}
	
	@Length(min=0, max=11, message="英文成绩长度必须介于 0 和 11 之间")
	@ExcelField(title="英文成绩", align=2, sort=130)
	public String getGreScore() {
		return greScore;
	}

	public void setGreScore(String greScore) {
		this.greScore = greScore;
	}
	
	@Length(min=0, max=32, message="政治面貌长度必须介于 0 和 32 之间")
	@ExcelField(title="政治面貌", align=2, sort=140)
	public String getZzmm() {
		return zzmm;
	}

	public void setZzmm(String zzmm) {
		this.zzmm = zzmm;
	}
	
	@Length(min=0, max=32, message="名族长度必须介于 0 和 32 之间")
	@ExcelField(title="名族", align=2, sort=150)
	public String getMinzu() {
		return minzu;
	}

	public void setMinzu(String minzu) {
		this.minzu = minzu;
	}
	
	@Length(min=0, max=32, message="籍贯长度必须介于 0 和 32 之间")
	@ExcelField(title="籍贯", align=2, sort=160)
	public String getJiguan() {
		return jiguan;
	}

	public void setJiguan(String jiguan) {
		this.jiguan = jiguan;
	}
	
	@Length(min=0, max=32, message="文化程度长度必须介于 0 和 32 之间")
	@ExcelField(title="文化程度", align=2, sort=170, dictType = "emp_educate")
	public String getCultrue() {
		return cultrue;
	}

	public void setCultrue(String cultrue) {
		this.cultrue = cultrue;
	}
	
	@Length(min=0, max=32, message="户口性质长度必须介于 0 和 32 之间")
	@ExcelField(title="户口性质", align=2, sort=180)
	public String getHukouXingzhi() {
		return hukouXingzhi;
	}

	public void setHukouXingzhi(String hukouXingzhi) {
		this.hukouXingzhi = hukouXingzhi;
	}
	
	@Length(min=0, max=64, message="户口所在地长度必须介于 0 和 64 之间")
	@ExcelField(title="户口所在地", align=2, sort=190)
	public String getHukouPlace() {
		return hukouPlace;
	}

	public void setHukouPlace(String hukouPlace) {
		this.hukouPlace = hukouPlace;
	}
	
	@Length(min=0, max=128, message="目前居住地长度必须介于 0 和 128 之间")
	@ExcelField(title="目前居住地", align=2, sort=200)
	public String getJuzhuPlace() {
		return juzhuPlace;
	}

	public void setJuzhuPlace(String juzhuPlace) {
		this.juzhuPlace = juzhuPlace;
	}
	
	@Length(min=0, max=64, message="紧急联系人长度必须介于 0 和 64 之间")
	@ExcelField(title="紧急联系人", align=2, sort=210)
	public String getEmgName() {
		return emgName;
	}

	public void setEmgName(String emgName) {
		this.emgName = emgName;
	}
	
	@Length(min=0, max=32, message="联络电话长度必须介于 0 和 32 之间")
	@ExcelField(title="联络电话", align=2, sort=220, isText = true)
	public String getEmgPhone() {
		return emgPhone;
	}

	public void setEmgPhone(String emgPhone) {
		this.emgPhone = emgPhone;
	}
	
	@Length(min=0, max=32, message="关系长度必须介于 0 和 32 之间")
	@ExcelField(title="关系", align=2, sort=230)
	public String getEmgGx() {
		return emgGx;
	}

	public void setEmgGx(String emgGx) {
		this.emgGx = emgGx;
	}
	
	@Length(min=0, max=64, message="个人特长长度必须介于 0 和 64 之间")
	@ExcelField(title="个人特长", align=2, sort=240)
	public String getTechang() {
		return techang;
	}

	public void setTechang(String techang) {
		this.techang = techang;
	}
	

	public String getOpeator() {
		return opeator;
	}

	public void setOpeator(String opeator) {
		this.opeator = opeator;
	}
	

	public String getIsActive() {
		return isActive;
	}

	public void setIsActive(String isActive) {
		this.isActive = isActive;
	}
	
	public Date getBeginTableDate() {
		return beginTableDate;
	}

	public void setBeginTableDate(Date beginTableDate) {
		this.beginTableDate = beginTableDate;
	}
	
	public Date getEndTableDate() {
		return endTableDate;
	}

	public void setEndTableDate(Date endTableDate) {
		this.endTableDate = endTableDate;
	}


	@ExcelField(title = "错误信息", type = 1, align = 2, sort = 250)
    public String getErrMsg() {
        return errMsg;
    }

    public void setErrMsg(String errMsg) {
        this.errMsg = errMsg;
    }
}